package sshj.process.module;

import sshj.process.adapter.InspurSSHAdapter;

public interface InspurSSHModule<M extends InspurSSHAdapter> {
    /**
     * 校验方法，检验幂等性
     */
    boolean checkHasInstall(M adapter);

    /**
     * 运行函数，指这个模块的运行
     *
     * @param adapter
     * @return
     */
    boolean run(M adapter);

    /**
     * 此模块的单个设备的执行超时时间，单位是毫秒
     */
    long getTimeoutTime();

    /**
     * 此模块如果超时要做的事情
     */
    void timeoutExecute();
}
